1. Field of the Invention
The present invention relates generally to storage systems for storing data.
2. Description of Related Art
Storage System Interoperability/Connectivity
Storage systems typically are provided with a storage control program able to be executed on one or more CPUs in the storage system for managing the storage system and for controlling access to data stored on the storage system. The storage control program is usually composed of various modules, such as a response program for reading data to and writing data from a host computer, a cache control program for managing data stored in the cache, a disk drive control program for controlling writing data to the disks and reading data from the disks, a data copy program for creating replicas of volumes (e.g., enabling backups and archives), a volume administration program for managing volumes, and the like. The storage control program is always assigned a version number to enable management of the modification histories of the storage control program. The storage control program is sometimes updated for fixing bugs, optimizing performance and extending the functionality of the storage control program, thereby resulting in newer versions.
On the host computer side of an information system, operating systems (OSs) running on the host computers also have a version number. Knowing the correct version of the OS is important for application software to ensure interoperability between the OS and the application software. Accordingly, application software almost always specifies an appropriate or compatible OS version for use with the application software. To focus on the relationship between the storage control program on the storage system and the OS on a host computer, it is also important to have compatible versions of these programs to guarantee interoperability between them. However, sometimes the latest version of the storage control software is not able to interact properly with host computers that are running older versions of OS software, and vice versa.
Storage Provisioning
Processes for allocating volumes to host computers are disclosed in U.S. Pat. No. 6,854,034, to Kitamura et al., entitled “Computer System and a Method of Assigning a Storage Device to a Computer”, filed Aug. 22, 2000, the disclosure of which is incorporated herein by reference. In this patent, configuration changes for host computers, network switches and a storage apparatus are made automatically when a volume is allocated to a host computer. A management means, when informed by a computer of a need for a new storage device, selects an available storage device for satisfying the computer's request, and instructs the storage device subsystem to set necessary data in such a manner that the requesting computer can access the selected device. The management means also returns necessary data to the requesting computer, such that the computer can modify its setting based on the data and can use the assigned device.
Virtual Machine Volume Image and Archive
The use of a virtual machine is a technology that enables running plural OSs (various versions of OSs and various different vendors' OSs) on a single computer. For example, Xen Virtual Machine Monitor available from XenSource, Inc., of Cambridge, England, is an open source implementation of virtual machine technology that runs on a host operating system and allows a user to run several guest operating systems alongside the host operating system on the same computer hardware at the same time.
One situation in which virtual machines are useful is for running archived execution images that contain old OSs, old applications and old data for the old applications. The old applications on these archived images may not be compatible with contemporary OSs, and thus, it is sometimes necessary for a computer to have an old OS installed that is compatible with the old applications in order to run the old applications and access the old data. In such a situation, the archived execution image may be retrieved to one or more volumes in the storage system. The old OS may then be installed on a virtual machine of a computer, rather than having to install the old OS as the primary operating system of the computer. However, the old OS operating on the virtual machine must also be able to establish a connection with the restored volume on the storage system. In cases where the retrieved OS running on the virtual machine is an older version of an OS, the retrieved OS might not be compatible with the current version of the storage control program running on the storage system that contains the volume to which the archived image was retrieved.
Generally, not all versions of OSs are supported by specific versions of storage control programs. If a volume image that includes an old OS image is retrieved from archives, an appropriate version of the storage control software should be used in the storage apparatus so as to be compatible with the old OS image. Otherwise, inconsistencies between the old OS and the current storage control program may result in interoperability problems. The prior art does not disclose any methods or procedures for applying an appropriate storage control software to enable proper operation between such a restored volume image and a computer that is using the restored volume image. Thus, it would be desirable to have a storage apparatus having execution capabilities for plural storage control programs so as to enable such interoperability.